describe <- function(variable = NULL, type = c("continuous", "binary"), plot_title = "Variable Density"){
  require(ggplot2)
  require(reshape2)
  if(type == "continuous"){
    dist <- summary(variable)
    missingness <- table(is.na(variable))
    plot_df <- melt(variable)
    summary_plot <- ggplot(data = plot_df, aes(x = value)) +
      geom_density(fill = "firebrick4", color = "black") +
    #  theme_bw() +
      xlab("Variable Value") +
      ylab("Density") +
      ggtitle(plot_title)
  }
  
  if(type == "binary"){
    dist <- table(variable)
    missingness <- table(is.na(variable))
    plot_df <- melt(variable)
    summary_plot <- ggplot(data = plot_df, aes(x = value)) +
      geom_histogram(fill = "firebrick4", color = "black", bins = 2) +
   #   theme_bw() +
      xlab("Variable Value") +
      ylab("Count") +
      ggtitle(plot_title) +
      scale_x_discrete(limits=c(0, 1))
  }
  return(list(dist = dist, missingness = missingness, summary_plot = summary_plot))
}
